/*
 Navicat MySQL Data Transfer

 Source Server         : 本地数据库
 Source Server Type    : MySQL
 Source Server Version : 80026
 Source Host           : localhost:3306
 Source Schema         : lovegoing

 Target Server Type    : MySQL
 Target Server Version : 80026
 File Encoding         : 65001

 Date: 11/03/2022 16:45:48
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for activity
-- ----------------------------
DROP TABLE IF EXISTS `activity`;
CREATE TABLE `activity`  (
  `activityname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动名称',
  `begintime` datetime NOT NULL COMMENT '活动开始的时间',
  `endtime` datetime NOT NULL COMMENT '活动结束的时间',
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动地点',
  `participant` int NOT NULL COMMENT '参与人数',
  `detail` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动详情',
  `prize` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '奖品',
  `valid` int NOT NULL COMMENT '活动是否有效',
  `applystarttime` datetime NULL DEFAULT NULL COMMENT '活动开始报名时间',
  `applyendtime` datetime NULL DEFAULT NULL COMMENT '活动结束报名的时间',
  `publisher` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '活动发布者的名称',
  `startsign` datetime NULL DEFAULT NULL COMMENT '活动开始签到的时间',
  `signcode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '签到码',
  PRIMARY KEY (`activityname`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of activity
-- ----------------------------
INSERT INTO `activity` VALUES ('123456的生日聚会', '2018-12-22 00:00:00', '2018-12-23 00:00:00', '123家里', 100, '找人来家里一起过生日，晚上7点到早上九点，呆满时间就领取500元', '500块', 1, '2021-12-31 00:00:00', '2018-12-25 00:00:00', '123456', NULL, NULL);
INSERT INTO `activity` VALUES ('test', '2018-12-22 00:00:00', '2018-12-23 00:00:00', 'test', 11, 'fgsdfgdsfg', '23', 1, '2018-12-24 00:00:00', '2018-12-25 00:00:00', '123456', NULL, NULL);
INSERT INTO `activity` VALUES ('七彩四点半', '2021-08-25 00:00:00', '2021-08-30 00:00:00', '东京海上控股株式会社', 100, '　iee  饿了吗   要去吃饭了吗    近日，团中央青年志愿者行动指导中心、中国青年志愿者协会秘书处联合中国平安人寿保险股份有限公司、东京海上控股株式会社面向全国征集遴选一批青年志愿者服务社区行动“七彩四点半”示范团队', '奖励分100', 1, '2021-09-20 21:42:39', '2021-09-03 21:42:44', '123456', '2021-09-25 02:46:02', '854989');
INSERT INTO `activity` VALUES ('发射点发', '2018-12-22 00:00:00', '2018-12-23 00:00:00', '发射点发', 77, '反抗撒旦解放卢卡斯京东方快速链接发', '撒打发', 1, '2018-12-24 00:00:00', '2018-12-25 00:00:00', 'zhangsan', '2021-09-26 05:34:44', '436298');
INSERT INTO `activity` VALUES ('志智双扶', '2019-07-19 00:00:00', '2019-08-19 00:00:00', '浙江理工大学研支团', 20, '四川省乐山市金口河区位于小凉山腹地，民族以汉族和彝族为主。自2013年起，浙江理工大学已派出6批累计35名研究生支教团志愿者到金口河，参与当地基层教学工作。\r\n\r\n2018年8月至2019年7月，浙江理工大学第二十届研究生支教团（以下简称浙理研支团）', '奖励分200', 1, '2021-02-11 21:42:48', '2021-08-04 21:42:54', 'zhangsan', NULL, NULL);
INSERT INTO `activity` VALUES ('抗洪救灾一线', '2021-08-25 00:00:00', '2021-08-30 00:00:00', '河南多地', 20, '“新乡是邻居\r\n\r\n　　自己邻居来帮帮”\r\n\r\n　　7月23日\r\n\r\n　　在新乡抢险救灾中\r\n\r\n　　一郑州19岁少年\r\n\r\n　　背老大爷时摔倒跪地\r\n\r\n　　两个膝盖都受了伤\r\n\r\n　　为了救更多的人\r\n\r\n　　他的腿在积水中长时间浸泡\r\n\r\n　　导致抽筋\r\n\r\n　　但他仍然在坚持\r\n\r\n　　这位少年说\r\n\r\n　　“因为新乡是邻居，自己邻居来帮帮\r\n\r\n　　郑州出啥事，新乡也会来”', '奖励1', 1, '2021-09-02 21:43:02', '2021-09-10 21:43:06', 'zhangsan', NULL, NULL);
INSERT INTO `activity` VALUES ('给边疆栽上万朵鲜花', '2021-08-25 00:00:00', '2021-08-28 00:00:00', '河北保定学院', 15, '　2000年，为响应国家西部大开发的号召，河北保定学院的15名毕业生毅然放弃多家用人单位的录用及继续深造的机会，带着户口选择到万里之遥的新疆且末县中学任教。截至2013年，这所学校已有97名毕业生在新疆、西藏、贵州、重庆、四川等地基层工作。虽然条件艰苦，但十几年来没有一人退缩，全部扎根在西部大地，参与见证了西部的改变和发展。', '上报纸', 1, '2021-09-17 21:43:10', '2021-10-15 21:43:13', 'zhangsan', '2021-09-26 21:03:47', '666382');
INSERT INTO `activity` VALUES ('金晖行动——智慧助老', '2021-08-25 00:00:00', '2021-09-25 00:00:00', '后峰会时代', 15, '青年志愿服务的工作力量覆盖市、区县（市）、乡镇（街道）各层级，社区也基本建立了志愿服务站，搭建了纵向到底的工作架构。与此同时，杭州还构建了一个由协会、民非、基金会组成，集“人才汇聚、资源交易、金融支撑、研究培训、示范引领和智慧管理”等六大功能于一体的高度社会化的志愿服务生态体系。', '奖励分100', 1, '2021-09-02 21:43:19', '2021-09-03 21:43:22', 'zhangsan', NULL, NULL);

-- ----------------------------
-- Table structure for auditactivity
-- ----------------------------
DROP TABLE IF EXISTS `auditactivity`;
CREATE TABLE `auditactivity`  (
  `activityname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动名称',
  `begintime` datetime NOT NULL COMMENT '活动开始的时间',
  `endtime` datetime NOT NULL COMMENT '活动结束的时间',
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动地点',
  `participant` int NOT NULL COMMENT '参与人数',
  `detail` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动详情',
  `prize` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '奖品',
  `valid` int NOT NULL COMMENT '活动是否有效',
  `applystarttime` datetime NULL DEFAULT NULL COMMENT '活动开始报名时间',
  `applyendtime` datetime NULL DEFAULT NULL COMMENT '活动结束报名的时间',
  `publisher` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '活动发布者的名字',
  PRIMARY KEY (`activityname`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of auditactivity
-- ----------------------------

-- ----------------------------
-- Table structure for auditpublisher
-- ----------------------------
DROP TABLE IF EXISTS `auditpublisher`;
CREATE TABLE `auditpublisher`  (
  `username` varbinary(20) NOT NULL COMMENT '申请者姓名',
  `reason` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '申请原因',
  PRIMARY KEY (`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of auditpublisher
-- ----------------------------
INSERT INTO `auditpublisher` VALUES (0x64646464646464646464646464646464646464, '没有原因没有原因没有原因没有原因没有原因没有原因没有原因');
INSERT INTO `auditpublisher` VALUES (0x6464646464646464646464646464646464646464, '没有原因没有原因没有原因没有原因没有原因没有原因没有原因');
INSERT INTO `auditpublisher` VALUES (0x676574417564697455736572, '没有原因没有原因没有原因没有原因没有原因没有原因没有原因');

-- ----------------------------
-- Table structure for audituser
-- ----------------------------
DROP TABLE IF EXISTS `audituser`;
CREATE TABLE `audituser`  (
  `activityname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户审批表的活动名',
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of audituser
-- ----------------------------
INSERT INTO `audituser` VALUES ('抗洪救灾一线', '123456');
INSERT INTO `audituser` VALUES ('123456的生日聚会', 'liuyan');
INSERT INTO `audituser` VALUES ('123456的生日聚会', 'aaa123456');

-- ----------------------------
-- Table structure for comment
-- ----------------------------
DROP TABLE IF EXISTS `comment`;
CREATE TABLE `comment`  (
  `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '评论的内容',
  `time` datetime NOT NULL COMMENT '评论的时间',
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '评论的用户',
  `stateid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '朋友圈的外键',
  INDEX `state_id`(`stateid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of comment
-- ----------------------------
INSERT INTO `comment` VALUES ('膜拜大佬呀！！', '2021-09-22 16:40:02', 'zhangsan', '6');
INSERT INTO `comment` VALUES ('膜拜大佬呀！！', '2021-09-08 16:40:32', '123456', '6');
INSERT INTO `comment` VALUES ('这个一个测试的评论哟', '2021-09-11 16:41:14', 'liuyan', '6');
INSERT INTO `comment` VALUES ('苦难生活，生活所迫', '2021-09-22 19:46:23', 'zhangsan', '6');
INSERT INTO `comment` VALUES ('苦难生活，生活所迫ddd', '2021-09-24 05:47:44', 'zhangsan', '6');
INSERT INTO `comment` VALUES ('你好', '2021-09-24 06:02:50', '123456', '6');
INSERT INTO `comment` VALUES ('一扣税的金发科技饭卡上的技法卢卡斯京东方开始打飞机啊两款手机的发', '2021-09-24 06:04:24', '123456', '6');
INSERT INTO `comment` VALUES ('啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊', '2021-09-24 06:05:01', '123456', '6');
INSERT INTO `comment` VALUES ('沙发', '2021-09-24 06:05:30', '123456', '1');
INSERT INTO `comment` VALUES ('发', '2021-09-26 02:28:28', 'liuyan', '6');
INSERT INTO `comment` VALUES ('发什么 东西', '2021-09-26 02:28:41', 'liuyan', '6');
INSERT INTO `comment` VALUES ('  发 公司鬼地方个', '2021-09-26 02:29:36', 'liuyan', '6');
INSERT INTO `comment` VALUES ('this is test messages', '2021-09-26 02:34:18', 'zhangsan', '1');
INSERT INTO `comment` VALUES ('你好', '2021-09-26 04:51:38', 'zhangsan', '20');
INSERT INTO `comment` VALUES ('这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论这是一个测试评论', '2021-09-26 17:59:28', 'aaa123456', '6');
INSERT INTO `comment` VALUES ('抢沙发', '2021-09-26 18:00:11', 'aaa123456', '22');
INSERT INTO `comment` VALUES ('抢沙发', '2021-09-26 18:00:17', 'aaa123456', '22');
INSERT INTO `comment` VALUES ('抢沙发555', '2021-09-26 18:00:23', 'aaa123456', '22');
INSERT INTO `comment` VALUES ('555', '2021-10-05 21:38:10', '123456', '22');
INSERT INTO `comment` VALUES ('123', '2022-02-21 17:09:37', 'zhangsan', '4');

-- ----------------------------
-- Table structure for img
-- ----------------------------
DROP TABLE IF EXISTS `img`;
CREATE TABLE `img`  (
  `activityname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活动名',
  `imgurl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图片地址'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of img
-- ----------------------------
INSERT INTO `img` VALUES ('给边疆栽上万朵鲜花', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987637212.jpg');
INSERT INTO `img` VALUES ('给边疆栽上万朵鲜花', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG5798763088.jpg');
INSERT INTO `img` VALUES ('给边疆栽上万朵鲜花', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG5798763269.jpg');
INSERT INTO `img` VALUES ('给边疆栽上万朵鲜花', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987638613.jpg');
INSERT INTO `img` VALUES ('抗洪救灾一线', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987677914.jpg');
INSERT INTO `img` VALUES ('抗洪救灾一线', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987679415.jpg');
INSERT INTO `img` VALUES ('抗洪救灾一线', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987685116.jpg');
INSERT INTO `img` VALUES ('抗洪救灾一线', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987690717.jpg');
INSERT INTO `img` VALUES ('七彩四点半', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987707720.jpg');
INSERT INTO `img` VALUES ('七彩四点半', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987712122.jpg');
INSERT INTO `img` VALUES ('七彩四点半', 'http://zgzyz.cyol.com/images/attachement/jpg/site42/20210825/IMG57987707720.jpg');
INSERT INTO `img` VALUES ('志智双扶', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876534.jpeg');
INSERT INTO `img` VALUES ('志智双扶', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876535.jpeg');
INSERT INTO `img` VALUES ('志智双扶', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876536.jpeg');
INSERT INTO `img` VALUES ('志智双扶', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876537.jpeg');
INSERT INTO `img` VALUES ('金晖行动——智慧助老', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876538.jpeg');
INSERT INTO `img` VALUES ('金晖行动——智慧助老', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876539.jpeg');
INSERT INTO `img` VALUES ('金晖行动——智慧助老', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876540.jpeg');
INSERT INTO `img` VALUES ('金晖行动——智慧助老', 'http://zgzyz.cyol.com/images/attachement/jpeg/site42/20181105/IMG49139876541.jpeg');
INSERT INTO `img` VALUES ('发射点发', '/image/bBULc16PdsEmf47f0c8103a416a89166676876b3a186.jpg');
INSERT INTO `img` VALUES ('发射点发', '/image/57cFWP48zj7Q38cfb2a32cbb74034ec747191a123ea1.jpg');
INSERT INTO `img` VALUES ('发射点发', '/image/wjUpiG0LKMOwfa468a474cbd6346106e20780f86ee70.jpg');
INSERT INTO `img` VALUES ('发射点发', '/image/TEywsm7W017Ub4fe3073e428049e18df2d38d2e83642.jpg');
INSERT INTO `img` VALUES ('123456的生日聚会', '/image/iGd9Kgl2lJZm38cfb2a32cbb74034ec747191a123ea1.jpg');
INSERT INTO `img` VALUES ('123456的生日聚会', '/image/ylmaucKCe0Wv7693499660aef8508755ddf1215b6af9.jpg');
INSERT INTO `img` VALUES ('123456的生日聚会', '/image/KTQIVmmkQVMSa03ecbbba1f02037fb260fa09084439b.jpg');
INSERT INTO `img` VALUES ('123456的生日聚会', '/image/t159eeHQjssy3d19d32941974f7170e30b733dff80e8.jpg');
INSERT INTO `img` VALUES ('咖啡', '/image/qFJzF8hEL98ffa468a474cbd6346106e20780f86ee70.jpg');
INSERT INTO `img` VALUES ('咖啡', '/image/uncMsnAt89u338cfb2a32cbb74034ec747191a123ea1.jpg');
INSERT INTO `img` VALUES ('咖啡', '/image/GhvVzAnlNeiG7693499660aef8508755ddf1215b6af9.jpg');
INSERT INTO `img` VALUES ('咖啡', '/image/NWnsARLIouS23d19d32941974f7170e30b733dff80e8.jpg');
INSERT INTO `img` VALUES ('【自用】终于可以删除广告弹框了-才145KB', 'https://attach.52pojie.cn/forum/202108/28/104314c655wqevntcwwjqu.png');
INSERT INTO `img` VALUES ('电脑微信小程序如何放大窗口', 'https://avatar.52pojie.cn/data/avatar/000/29/14/31_avatar_middle.jpg');
INSERT INTO `img` VALUES ('贪心算法之Python算法题实战 -《完美的代价》', 'https://avatar.52pojie.cn/data/avatar/001/14/74/36_avatar_middle.jpg');
INSERT INTO `img` VALUES ('贪心算法之Python算法题实战 -《完美的代价》', 'https://avatar.52pojie.cn/data/avatar/001/10/94/58_avatar_middle.jpg');
INSERT INTO `img` VALUES ('贪心算法之Python算法题实战 -《完美的代价》', 'https://avatar.52pojie.cn/data/avatar/000/39/32/52_avatar_middle.jpg');
INSERT INTO `img` VALUES ('如何快速判断一个文件是否为病毒 by 是昔流芳', '/image/9C5ADD8181A0EF49F2996EA1C26E2889.jpg');
INSERT INTO `img` VALUES ('和豆腐干', '/image/ZK0rb6FR9AEwe3a92a1e20b3b8debe7f6b5d6e798f44.jpg');
INSERT INTO `img` VALUES ('和豆腐干', '/image/8YpYZcx7l1MP2c359354d2c17fcf6e6a3fcb0a6b0873.jpg');
INSERT INTO `img` VALUES ('和豆腐干', '/image/7IJ2ZqBHxDhJ8964d6b88a7aef8756007ed0572e15bf.jpg');
INSERT INTO `img` VALUES ('和豆腐干', '/image/bRhmMXdNrxsZ278a68c53d1a532b13ae1c342631a426.jpg');
INSERT INTO `img` VALUES ('123pengyou看过来', '/image/esLcWVxESeUJ0f5d429acd24e141e9b8cb253e2305a2.jpg');
INSERT INTO `img` VALUES ('123pengyou看过来', '/image/KEThx8GEbH1Bfbdc0fc87ae8f649fd0ec0405dabb586.jpg');
INSERT INTO `img` VALUES ('123pengyou看过来', '/image/ZwcSXdr4vGZWf47f0c8103a416a89166676876b3a186.jpg');
INSERT INTO `img` VALUES ('123456', '/image/86prWuzJpZtx2c359354d2c17fcf6e6a3fcb0a6b0873.jpg');
INSERT INTO `img` VALUES ('123456', '/image/86prWuzJpZtx2c359354d2c17fcf6e6a3fcb0a6b0873.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/FbTfx9sZGBPVa03ecbbba1f02037fb260fa09084439b.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/FbTfx9sZGBPVa03ecbbba1f02037fb260fa09084439b.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/4kt6qJZOZ6Kw2c359354d2c17fcf6e6a3fcb0a6b0873.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/4kt6qJZOZ6Kw2c359354d2c17fcf6e6a3fcb0a6b0873.jpg');
INSERT INTO `img` VALUES ('null->username', '/image/OVME5jxAtVv97693499660aef8508755ddf1215b6af9.jpg');
INSERT INTO `img` VALUES ('null->username', '/image/Tysnzsh9lt7k8964d6b88a7aef8756007ed0572e15bf.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/gJWXlIxrAVfSfa468a474cbd6346106e20780f86ee70.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/4cWu3vS8X4G67693499660aef8508755ddf1215b6af9.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/cJw8nYGFEbRs7693499660aef8508755ddf1215b6af9.jpg');
INSERT INTO `img` VALUES ('dsafas', '/image/UfS8DoZghKH0358b8b785012c0a0ccd2adb2decb2c07.jpg');
INSERT INTO `img` VALUES ('dsafas', '/image/TsMfjIVokk4de3a92a1e20b3b8debe7f6b5d6e798f44.jpg');
INSERT INTO `img` VALUES ('dsafas', '/image/F67GMNgD3MxR28afd654add97eb84a502d5c52c70a25.jpg');
INSERT INTO `img` VALUES ('dsafas', '/image/KBCWqQ0QoRXD9ab7088465ce3064e8e601c33eaaa13f.jpg');
INSERT INTO `img` VALUES ('野狼dissco', '/image/jWjzGlo9kbKha03ecbbba1f02037fb260fa09084439b.jpg');
INSERT INTO `img` VALUES ('认出你', '/image/iVErQ4ilV1F0fa468a474cbd6346106e20780f86ee70.jpg');
INSERT INTO `img` VALUES ('nihao->username', '/image/XwS9xbIkA3kw6de7f157828b232e98641bfad2e71d96.jpg');
INSERT INTO `img` VALUES ('aaa123456->username', '/image/K3HQDyfmPGTf365ca8f2eabbe19a84796c01f4f18ba4.jpg');
INSERT INTO `img` VALUES ('XPOSED魔改一：获取特征', '/image/VK9zVsr7OaXh6de7f157828b232e98641bfad2e71d96.jpg');
INSERT INTO `img` VALUES ('XPOSED魔改一：获取特征', '/image/u6gUqStUP5Yv040a972cc6aace5cd5bb7b630d99a324.jpg');
INSERT INTO `img` VALUES ('XPOSED魔改一：获取特征', '/image/qcDUVH7MrZkL6b4aed69b726f5d94e853a51f917b30e.jpg');
INSERT INTO `img` VALUES ('XPOSED魔改一：获取特征', '/image/nPK3C1oploqg278a68c53d1a532b13ae1c342631a426.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/RxeBP4vwhir74f2664b92178035e5f09273a027b45c3.jpg');
INSERT INTO `img` VALUES ('123456->username', '/image/UH57UW2yHoEIfa468a474cbd6346106e20780f86ee70.jpg');
INSERT INTO `img` VALUES ('test', '/image/sj85WZWTlyNO7e9afaf0b030aeb96375a4be1eb6e70c.jpg');
INSERT INTO `img` VALUES ('123456', '/image/TlbDDDxt07w40f5d429acd24e141e9b8cb253e2305a2.jpg');

-- ----------------------------
-- Table structure for state
-- ----------------------------
DROP TABLE IF EXISTS `state`;
CREATE TABLE `state`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '朋友圈的唯一表示',
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标题',
  `content` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '朋友圈内容',
  `view` int NOT NULL COMMENT '朋友圈的观看数量',
  `comment_num` int NOT NULL COMMENT '盆友圈的评论数量',
  `publisher` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '发布者',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of state
-- ----------------------------
INSERT INTO `state` VALUES (1, '【自用】终于可以删除广告弹框了-才145KB', '出发点：总是被右下角各种弹框广告苦苦困扰，关掉吧，过一会儿又弹出来了，跟流氓一样，于是乎\r\n\r\n小弟不才，用C#自己写了一个处理弹框的工具，现在共享出来，为了大家方便下载，我这回没有用皮肤。\r\n\r\n用途：查找弹框位置、关闭弹框、删除弹框文件\r\n\r\n运行环境：.NET 4.5.0\r\n\r\n特点是：方便、易用、速度快、支持浏览弹框位置、支持一键删除、只有145kb', 22, 0, '123456');
INSERT INTO `state` VALUES (2, '电脑微信小程序如何放大窗口', '\r\nRT，电脑微信小程序如何放大窗口，各位大神有知道的嗎？', 11, 0, '123456');
INSERT INTO `state` VALUES (3, '[.Net] 一个C# Winform做的计算器 v2', '\r\n原帖:\r\nhttps://www.52pojie.cn/thread-1487008-1-1.html\r\n\r\n在原先版本基础上优化了导入，计算的流程和时间，可以直接读取中控软件的att2000数据库，大幅提高了效率', 15, 0, '123456');
INSERT INTO `state` VALUES (4, '贪心算法之Python算法题实战 -《完美的代价》', '近也没什么事可做,就在备赛蓝桥杯(Python).蓝桥杯主要考察的是算法题目.所以我也在网上找了些资源刷题,昨天当我刷到《完美的代价》这道题目的时候,我就被卡住了.怎么想也想不通,就连解题代码也看不懂.更搞笑的是,昨天晚上我睡觉的时候,就在思考这道题目,结果不到一分钟,我就入睡了...', 23, 0, '123456');
INSERT INTO `state` VALUES (6, '如何快速判断一个文件是否为病毒 by 是昔流芳', '先说一下写这篇文章的背景和目的。现在吾爱的『原创发布区』和『精品软件区』人气很旺，发布的软件非常多。但也有一些小人，在发布的软件里插些小玩具，当灰客。论坛派专人检测也是很困难的，工作量太大，查不过来，因此很大程度上要靠用户自己识别，于是就有了这篇文章。需要说明一下的是，这篇文章主要是快速辨别正常文件与病毒，我自己也不是专业人员，方法是我自己总结出来的，很业余，不过我觉得还是有些用处的。如果你有更好的办法，欢迎跟帖提出。下面正文开始。', 0, 0, 'zhangsan');
INSERT INTO `state` VALUES (14, '和豆腐干', '讽德诵功森岛帆高', 0, 0, '123456');
INSERT INTO `state` VALUES (15, '123pengyou看过来', '卡的健身房卡多少积分', 0, 0, '123456');
INSERT INTO `state` VALUES (20, '野狼dissco', 'uni.request POST 请求后台接收不到参数\n问题描述\n前端用 uni.reauest 发送 POST 请求，后台接收不到参数。\n\n原因分析\n是因为 uni.request 对传入 data 数据转换后，后台接收数据形式没有对应上。\n\nuniapp 官网对 data 的说明：\n\n\n\n默认的 content-type ：\n\n\n\n也就是说，当 method 为 POST ，并且 header 为 application/json 时， data 会被序列化为 JSON 字符串，所以这个时候，后台需要用一个对应的封装好的实体类或者 Map 配合注解 @RequestBody 接收。\n\n前端请求， method 为 POST 且 content-type 默认，即 application/josn ：\n\nuni.request({\n								url: \'http://localhost:8080/login/wxLogin\',\n								method: \'POST\',\n								data: {\n									code\n								},\n								success: (res) => {\n									console.log(res)\n								}\n							})\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n后端需要用 @RequestBod Map<String, String> 接收：\n\n@PostMapping(\"/wxLogin\")\n    public RespBean wxLogin(@RequestBody Map<String, String> map) {\n       \n        System.out.println(\"code: \" + map.get(\"code\"));\n\n        return RespBean.ok(\"成功\");\n\n    }\n1\n2\n3\n4\n5\n6\n7\n8\n解决办法\n如果不想像上面那样用 map 接收，可以修改 uni.request 的 header 为 \'content-type\': \'application/x-www-form-urlencoded\' 。\n\n前端请求：\n\nuni.request({\n								url: \'http://localhost:8080/login/wxLogin\',\n								method: \'POST\',\n								header: {\n									\'content-type\': \'application/x-www-form-urlencoded\'\n								},\n								data: {\n									code\n								},\n								success: (res) => {\n									console.log(res)\n								}\n							})\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n后端直接接收：\n\n@PostMapping(\"/wxLogin\")\n    public RespBean wxLogin(String code) {\n\n        System.out.println(\"code: \" + code);\n\n        return RespBean.ok(\"成功\");\n\n    }\n————————————————\n版权声明：本文为CSDN博主「艺俊」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。\n原文链接：https://blog.csdn.net/qq_23412263/article/details/117394928', 0, 0, 'zhangsan');
INSERT INTO `state` VALUES (21, '认出你', '首先在此声明，本文章仅仅用于研究学习，不可用于任何商业活动，否则后果自负。\n\n今天的npy\naHR0cHM6Ly9iei56enptaC5jbi9pbmRleA==\nnpy这三个字自己脑补吧，哈哈哈哈。\n\n\n解决无限debugger\n\n\n法一：\n\n右击debugger行数位置，点击add conditional breakpoint..,添加false，然后按回撤， 刷新网页，发现成功跳过无限debugger\n\n\n\n法二：\n\n1、在js文件右击， 然后点击save as ..., 把js文件保存到本地。\n\n\n\n2、修改保存到本地的js文件，将debugger成false保存js文件\n\n\n\n\n3、在浏览器Soures获取需要替换的js文件url\n\n\n\n\n4、使用fiddler等工具动态拦截替换js，刷新网页即可\n\n\n\n法三：\n       注入代码到js文件\n\n[JavaScript] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n//去除无限debugger\nFunction.prototype.__constructor_back = Function.prototype.constructor;\nFunction.prototype.constructor = function() {\n    if(arguments && typeof arguments[0]===\'string\'){\n        //alert(\"new function: \"+ arguments[0]);\n        if(\"debugger\" === arguments[0]){\n            //arguments[0]=\"console.log(\\\"anti debugger\\\");\";\n            //arguments[0]=\";\";\n            return\n        }\n    }\n   return Function.prototype.__constructor_back.apply(this,arguments);\n}\n\n\n加密分析与定位\n        其实看到上面这个过无限debugger的大家都可以大致猜出我们今天的网站有这个一项，这里我才用的法三，注入js。其实一开始我用的法一，但是效果不理想，不是不理想，是很不好，卡死人。里面的验证码滑动都特别卡，我后来尝试法三后，特别的丝滑，跟正常一样。        先说说这个网站吧，它开始是一打开网页就有滑动验证码，后来改了，一打开第一页没有了，下面请求就会有。\n首先我们看一下它的代码（下图），很明显，被混淆了。这里我们可以用下面这个网站进行混淆还原，让它至少可以看了。\nhttp://tool.yuanrenxue.com/decode_obfuscator猿人学ob混淆还原工具\n\n\n\n        把这些混淆还原一下后，我们看下一页，首先遇到的是滑动验证码，这里滑动验证码的获取就不多赘述，抓包就好了，在 XHR 里面就可以看到请求。我们看一下滑动验证码检验是否成功参数。\n\n\n\n\n可以看到有三个参数，其中 captchaType 是固定不变的，而 token 是跟滑动验证码的 bs64编码 一起返回的，就是下图，jigsawImageBase64 与originalImageBase64 分别对应滑块图片与背景图片。\n\n\n\n        正如上图看到的，secretKey 与 token 也被一起返回回来，它们两个下面要被用到。那就剩下一个参数 pointJson ，我们搜索一下它，会发现就只有一个js文件，再在文件里面找它，发现有好几个（也就2个，哈哈哈哈哈），这里就是打断点确定是哪个了。\n\n\n\n最后确定下来是这个，在这里你会发现，这个根本没有轨迹的验证什么的，就是单纯验证一下缺口的左边到图片左边缘的像素距离。这里我们看一下还原后的代码。\n\n[JavaScript] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\nfunction pointJson(moveBlockLeft,secretKey) {\n    _0x4b1647 = moveBlockLeft\n    pointJson =  secretKey ? _0x43f1b9(JSON[\'stringify\']({\n            \'x\': _0x4b1647,\n            \'y\': 0x5\n        }), secretKey) : JSON[\'stringify\']({\n            \'x\': _0x4b1647,\n            \'y\': 0x5\n        });\n    return pointJson\n \n}\n\n\n这个是我改的，看里面的，没有什么的大的改变，说明这里没有怎么混淆，看一下上面两个参数 moveBlockLeft 与 secretKey ，secretKey 就不多说，就是上面说的，而 moveBlockLeft 就是像素距离。但是这里还有一个函数_0x43f1b9，我们看一下它的代码。\n\n\n\n这里的代码很明显，这里我们改下一下，用 nodejs 的 crypto-js 库，改一下就好了。可以参考我下面这个代码。\n\n[JavaScript] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\nvar CryptoJS = require(\"crypto-js\");\nfunction _0x43f1b9(_0x393fb6) {\n    var _0x4d513d = arguments[\"length\"] > 1 && undefined !== arguments[1] ? arguments[1] : \"XwKsGlMcdPMEhR1B\",\n        _0x4b1647 =  CryptoJS.enc.Utf8.parse(_0x4d513d),\n        _0x2e1dac =  CryptoJS.enc.Utf8.parse(_0x393fb6),\n        _0x84666d = CryptoJS.AES.encrypt(_0x2e1dac, _0x4b1647, {\n            \"mode\": CryptoJS.mode.ECB,\n            \"padding\": CryptoJS.pad.Pkcs7\n        });\n    return _0x84666d.toString();\n}\n\n\n这样这个参数 pointJson 就解决了。\n这样这个网的滑块就过了。\n滑块过后你点击的页面才会加载，但是看请求头会发现有一个参数 captcha\n\n\n\n这里再次搜索这个 captcha ，会定位到下图这样的代码\n\n\n\n这个会发现 _0x4dd66d ，这个参数可以根据调用栈找到加密办法。也就是下面这个。\n\n\n\n我们看一下还原后以及被我改的代码。\n\n[JavaScript] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\nfunction captcha(moveBlockLeft,token,secretKey) {\n    var captcha = secretKey ? _0x43f1b9(token + \'---\' + JSON[\'stringify\']({\n        \'x\': moveBlockLeft,\n        \'y\': 0x5\n    }), secretKey) : token + \'---\' + JSON[\"stringify\"]({\n        \'x\': moveBlockLeft,\n        \'y\': 0x5\n    });\n    return captcha\n}\n\n\n_0x43f1b9 这个是不是很熟悉，每次，他就是上面用 nodejs 的 crypto-js 库改加密的函数。\n好了这个就是 captcha 的加密。\n下面是 auth_key 的加密，当我们点击一个图片时，它会发出请求，其实有两个，一个是缩小版，一个是原版，这个 auth_key 的加密其实很好找的也是与上面一样，搜索就好了，这里就不咋赘述，我就放一个网站加密代码。\n\n\n\n还原后以及改写代码：\n\n[JavaScript] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\nfunction url(_0x29df17, _0xea945) {\n    var _0x537ece = \"YQTJLVCqattV1T0fhuhJTW1vyH7ZdyE3\",\n        _0x5998d = \"https://doge.zzzmh.cn\",\n        _0x5c5042 = _0x50ecce(32),\n        _0x56d562 = parseInt((_0xea945 || Date[\"now\"]()) / 1000) + 1800,\n        _0x25aa83 = _0x29df17[\"substring\"](_0x5998d[\"length\"], -1 == _0x29df17[\"lastIndexOf\"](\"?\") ? _0x29df17[\"length\"] : _0x29df17[\"lastIndexOf\"](\"?\")),\n        _0x41d299 = _0x56d562 + \"-\" + _0x5c5042 + \"-0-\" + md5(_0x25aa83 + \"-\" + _0x56d562 + \"-\" + _0x5c5042 + \"-0-\" + _0x537ece);\n \n    return _0x29df17 + (_0x29df17[\"indexOf\"](\"?\") < 0 ? \"?\" : \"&\") + \"auth_key=\" + _0x41d299;\n}\n\n\n这样这个网站的加密就算完成了，但是呢，人家返回的数据也是解密的，还得解密，哈哈哈哈哈，靓男无语了，没办法，只能解密了。\n我们先看一下它返回的加密数据。\n\n\n\n看是看不出什么的，直接动手搞它。这里我看的是调用栈，然后找到它的。是下图这个。\n\n\n\n然后我们打开，设置断点，翻页，刚好停在那里。\n\n\n\n其实我们就要下面代码就好了。\n\n[JavaScript] 纯文本查看 复制代码\n?\n1\n_0x417d7d[\'data\'][\'result\'] = JSON[\'parse\'](_0x6247d3[\'a\'][_0x3de3(\'0x5e\', \'D6$F\')](_0x417d7d[\'data\'][\'result\']))\n\n\n这里我们就看下还原后代码。\n\n[JavaScript] 纯文本查看 复制代码\n?\n1\n_0x417d7d[\"data\"][\"result\"] = JSON[\"parse\"](_0x6247d3[\"a\"][\"decipher\"](_0x417d7d[\"data\"][\"result\"]))\n\n\n我的代码。\n\n[JavaScript] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\nfunction _0x41d299(_0x29df17) {\n    for (var _0xea945 = [-111, 52, 91, 65, -65, 116, 119, 106, -121, -82, -5, 80, 51, 97, 68, -83, -112, -51, 23, -46, -34, -114, -55, -11, -127, 90, 33, 22, -31, 50, -17, 20, -44, 15, -94, -123, 118, -23, -61, 114, 71, -104, -126, -117, -81, -54, -18, -110, -4, -95, -91, 94, -80, -14, 120, 105, 85, 104, -86, -108, 67, 25, 101, 108, 16, -105, 111, -10, 117, -73, 77, 89, -29, -98, -68, 112, 107, -1, 86, 121, 88, -101, -124, 69, -30, -8, -113, -74, -118, 57, -25, 12, -115, -106, 95, 127, 84, 124, -102, -28, 73, 43, -60, 28, 46, 115, 30, 122, -75, 125, -67, -77, 3, -7, -53, -13, 53, 78, -72, 1, 11, -71, -39, -79, -3, 19, 41, 126, -43, -125, -27, 34, 63, 8, 72, -35, -41, -63, 60, -24, 102, 47, -119, -103, -22, 45, 59, 64, -96, 49, 83, -107, -120, -57, -70, 0, -38, -84, -40, 24, 14, 48, 29, 44, -36, -47, 56, -92, 38, 37, 4, -50, 103, 10, -89, 55, 113, -26, 110, 54, 36, -20, -78, -12, -116, 70, -37, 5, -62, -76, -48, -64, 79, 100, 40, 6, -58, -90, -19, -9, 39, 93, -99, 21, 7, 26, -2, 27, -45, 81, 58, -122, 76, -66, 2, 92, -42, 98, -16, 9, 61, 62, -15, 99, -21, 31, -56, 87, 17, -52, -69, -33, -59, -85, 66, 74, 18, -93, -128, -87, -32, 42, 32, -88, 109, 96, 13, -6, 75, -100, -49, 35, -97, 82, -109, 123], _0x537ece = 0, _0x5c5042 = 0, _0x56d562 = 0, _0x25aa83 = new Array(), _0x5998d = 0; _0x5998d < _0x29df17[\"length\"]; _0x5998d++) {\n        _0x537ece = _0x537ece + 1 & 255, _0x5c5042 = (255 & _0xea945[_0x537ece]) + _0x5c5042 & 255;\n        var _0x41d299 = _0xea945[_0x537ece];\n        _0xea945[_0x537ece] = _0xea945[_0x5c5042], _0xea945[_0x5c5042] = _0x41d299, _0x56d562 = (255 & _0xea945[_0x537ece]) + (255 & _0xea945[_0x5c5042]) & 255, _0x25aa83[\"push\"](_0x29df17[_0x5998d] ^ _0xea945[_0x56d562]);\n    }\n \n    return _0x25aa83;\n}\n \nfunction _0x438891(_0x29df17) {\n    for (var _0xea945, _0x537ece, _0x5c5042 = \"\", _0x56d562 = 0; _0x56d562 < _0x29df17[\"length\"];) _0xea945 = _0x29df17[_0x56d562], _0x537ece = 0, _0xea945 >>> 7 === 0 ? (_0x5c5042 += String[\"fromCharCode\"](_0x29df17[_0x56d562]), _0x56d562 += 1) : 252 === (252 & _0xea945) ? (_0x537ece = (3 & _0x29df17[_0x56d562]) << 30, _0x537ece |= (63 & _0x29df17[_0x56d562 + 1]) << 24, _0x537ece |= (63 & _0x29df17[_0x56d562 + 2]) << 18, _0x537ece |= (63 & _0x29df17[_0x56d562 + 3]) << 12, _0x537ece |= (63 & _0x29df17[_0x56d562 + 4]) << 6, _0x537ece |= 63 & _0x29df17[_0x56d562 + 5], _0x5c5042 += String[\"fromCharCode\"](_0x537ece), _0x56d562 += 6) : 248 === (248 & _0xea945) ? (_0x537ece = (7 & _0x29df17[_0x56d562]) << 24, _0x537ece |= (63 & _0x29df17[_0x56d562 + 1]) << 18, _0x537ece |= (63 & _0x29df17[_0x56d562 + 2]) << 12, _0x537ece |= (63 & _0x29df17[_0x56d562 + 3]) << 6, _0x537ece |= 63 & _0x29df17[_0x56d562 + 4], _0x5c5042 += String[\"fromCharCode\"](_0x537ece), _0x56d562 += 5) : 240 === (240 & _0xea945) ? (_0x537ece = (15 & _0x29df17[_0x56d562]) << 18, _0x537ece |= (63 & _0x29df17[_0x56d562 + 1]) << 12, _0x537ece |= (63 & _0x29df17[_0x56d562 + 2]) << 6, _0x537ece |= 63 & _0x29df17[_0x56d562 + 3], _0x5c5042 += String[\"fromCharCode\"](_0x537ece), _0x56d562 += 4) : 224 === (224 & _0xea945) ? (_0x537ece = (31 & _0x29df17[_0x56d562]) << 12, _0x537ece |= (63 & _0x29df17[_0x56d562 + 1]) << 6, _0x537ece |= 63 & _0x29df17[_0x56d562 + 2], _0x5c5042 += String[\"fromCharCode\"](_0x537ece), _0x56d562 += 3) : 192 === (192 & _0xea945) ? (_0x537ece = (63 & _0x29df17[_0x56d562]) << 6, _0x537ece |= 63 & _0x29df17[_0x56d562 + 1], _0x5c5042 += String[\"fromCharCode\"](_0x537ece), _0x56d562 += 2) : (_0x5c5042 += String[\"fromCharCode\"](_0x29df17[_0x56d562]), _0x56d562 += 1);\n \n    return _0x5c5042;\n}\n \nfunction _0x21a6fa(_0x29df17) {\n    for (var _0xea945 = atob(_0x29df17), _0x537ece = new Int8Array(_0xea945[\"length\"]), _0x5c5042 = 0; _0x5c5042 < _0xea945[\"length\"]; _0x5c5042++) _0x537ece[_0x5c5042] = _0xea945[\"charCodeAt\"](_0x5c5042);\n \n    return _0x537ece;\n}\n \nfunction _0xbe7c1c(_0x29df17) {\n    return _0x438891(_0x41d299(_0x21a6fa(_0x29df17)));\n}\n \nfunction decode(str) {\n    var info = _0xbe7c1c(str)\n    info_dict = JSON.parse(info)\n    // console.log(info_dict)\n    return info_dict\n}\n\n\n其实本质上就是个解码的过程。decode 就是主函数。\n\n我们试一个看一看。\n[Asm] 纯文本查看 复制代码\n?\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n{\n  currPage: 1,\n  list: [\n    { t: 2, w: 6500, h: 3300, i: \'c8bfcd9f880411ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3840, h: 2233, i: \'c6ac1e46880411ebb6edd017c2d2eca2\' },\n    { t: 2, w: 1920, h: 1080, i: \'c5398839880411ebb6edd017c2d2eca2\' },\n    { t: 2, w: 4149, h: 2480, i: \'01217514880511ebb6edd017c2d2eca2\' },\n    { t: 1, w: 2560, h: 1440, i: \'cec99a46880411ebb6edd017c2d2eca2\' },\n    { t: 2, w: 1920, h: 1200, i: \'27524ac7880511ebb6edd017c2d2eca2\' },\n    { t: 1, w: 1920, h: 1080, i: \'865885b0881611ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3840, h: 2160, i: \'0bbd039fb5a54de2b240ab0fcd3af8ed\' },\n    { t: 2, w: 3840, h: 2160, i: \'3f30472a880511ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3840, h: 2160, i: \'a9982f7441bd4e07a3b1a26af43457d9\' },\n    { t: 2, w: 4500, h: 2800, i: \'0c0f3f16880511ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3840, h: 2400, i: \'4921c7d7eae046c7a4d8575b02a6ae2b\' },\n    { t: 2, w: 1920, h: 1080, i: \'c5340e3e880811ebb6edd017c2d2eca2\' },\n    { t: 2, w: 7680, h: 4320, i: \'21142970880911ebb6edd017c2d2eca2\' },\n    { t: 2, w: 4000, h: 2433, i: \'156a17e6880511ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3859, h: 2594, i: \'070dfddb880511ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3840, h: 2160, i: \'bbc58c3d998d4f389fdae649334873f7\' },\n    { t: 2, w: 7680, h: 4320, i: \'4dd06e4787714b08a2d56b5528569a67\' },\n    { t: 2, w: 2560, h: 1440, i: \'ce329083a43b4526ac6129f8c651bae5\' },\n    { t: 2, w: 2800, h: 1350, i: \'1e8d7c5e880511ebb6edd017c2d2eca2\' },\n    { t: 2, w: 3840, h: 2160, i: \'cae57fea880411ebb6edd017c2d2eca2\' },\n    { t: 2, w: 4096, h: 2404, i: \'56ac935951ab4af78bf31af55b600d95\' },\n    { t: 2, w: 7680, h: 4320, i: \'4678e4f731874d668ec21a2d2608878c\' }\n  ],\n  pageSize: 23,\n  totalCount: 34339,\n  totalPage: 1493\n}\n\n\n很好，解决了，只有这些是什么，就自己搞吧，这里提示一下，跟获取原图链接有关，跟上面 auth_key 获取有关。\n\n', 0, 0, 'zhangsan');
INSERT INTO `state` VALUES (22, 'XPOSED魔改一：获取特征', '\n本帖最后由 roysue 于 2020-4-5 16:18 编辑\n\n\nXPOSED魔改一：获取特征\n写在前面\n准备环境：选择XPOSED版本v89\n准备环境：选择谷歌原版镜像7.1.2\n准备环境：使用SuperSU进行root\n准备环境：安装Xposed框架并激活插件\n收集特征：底包详细信息\n收集特征：日志输出信息\n收集特征：插件开发配置信息\n收集特征：XposedChecker源码\n收集特征：逆向分析大厂方案\nXPOSED魔改一：获取特征\n写在前面\n受这篇文章——《定制Xposed框架》启发，决定自己也尝试一下。\n\n尝试的过程中发现，文章写得太“简约”了，基本上毫无细节，后人想下手或复现非常困难，对Xposed各模块之间的关系也没有介绍，有点“干”，不易于理解，于是有了此文。\n\n本文细节非常多，相当于手把手，篇幅过长所以分拆成三篇：\n\nXPOSED魔改一：获取特征\nXPOSED魔改二：编译源码\nXPOSED魔改三：更改特征\n部分附件（镜像、刷机文件等）位于我的github：https://github.com/r0ysue/AndroidSecurityStudy的FART/picC文件夹中。\n\n话不多说，进入正题，既然想要抹掉XPOSED框架的特征，那么首先得知道XPOSED框架有哪些特征，才能有的放矢、对症下药。\n\n准备环境：选择XPOSED版本v89\n从Xposed官方发布频道得知，sdk27版本（也就是安卓8.1）的Xposed还是beta的状态：\n\n\n\n最新的正式版是sdk25（也就是安卓7.1），已经是2017年的了：\n\n\n\n当然最重要的还是Github主页上开源的版本只到v89，也就是安卓7.1；而不是安卓8的v90系列。\n\n\n\n准备环境：选择谷歌原版镜像7.1.2\nXposed今后应该也不会更新了，我们以android-7.1.2_r8版本来进行编译。\n\n\n\n首先只需要收集特征，我们先下载其线程的谷歌镜像进行刷机即可：\n\n\n\n在Link上右键复制链接地址，可以直接黏贴到国内环境的浏览器里下载的，也可以直接wget：', 0, 0, 'aaa123456');

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名20个字',
  `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码20个字',
  `photo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像可能很长所以255个字',
  `motto` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '个性签名',
  `nickname` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称',
  `mask` int NULL DEFAULT 1 COMMENT '1为普通用户 2为活动发布者',
  `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户邮箱用于找回密码',
  PRIMARY KEY (`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('123456', '1234567', '/image/NoiTNXuypLRea12058772db442328a45297d0bc079dc.jpg', '这是一个随随便便的个性签名', NULL, 2, '123456@');
INSERT INTO `user` VALUES ('1234562', '123456', NULL, NULL, NULL, 2, '123456@');
INSERT INTO `user` VALUES ('aaa123456', 'zxcv111', '/image/K3HQDyfmPGTf365ca8f2eabbe19a84796c01f4f18ba4.jpg', '俩光摩托车，斗争来博', NULL, 2, 'asdfas@qq.com');
INSERT INTO `user` VALUES ('liuyan', '123456', 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fww3.sinaimg.cn%2Fmw690%2F006nNKJ2ly1gto9bz4ov2j60zj1bdqhh02.jpg&refer=http%3A%2F%2Fwww.sina.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1634260951&t=6cbe9e4614fabd79a2227482e3ececd2', '人生如戏', '小刘眼', 2, NULL);
INSERT INTO `user` VALUES ('nihao', '123456', '/image/XwS9xbIkA3kw6de7f157828b232e98641bfad2e71d96.jpg', NULL, NULL, 2, '123456@qq,com');
INSERT INTO `user` VALUES ('zhangsan', '123456', '/image/1ncCGpMgClGW0239afcf0e7dff2f75e2ceac3c3206a5.jpg', '只要人人都献出一点爱,世界将变成美好的人间。', NULL, 2, '123156465@qq.com');
INSERT INTO `user` VALUES ('zhangsan2', '123456', NULL, NULL, NULL, 1, '123456@qq.com');

-- ----------------------------
-- Table structure for useractivity
-- ----------------------------
DROP TABLE IF EXISTS `useractivity`;
CREATE TABLE `useractivity`  (
  `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户表的外键',
  `activityname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '活动表的外键',
  `sign` int NULL DEFAULT 1 COMMENT '判断是否签到：1未签到，2 签到',
  INDEX `username`(`username`) USING BTREE,
  INDEX `activity`(`activityname`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of useractivity
-- ----------------------------
INSERT INTO `useractivity` VALUES ('zhangsan', '小本', 1);
INSERT INTO `useractivity` VALUES ('zhangsan', '咖啡', 1);
INSERT INTO `useractivity` VALUES ('zhangsan', '发射点发', 2);
INSERT INTO `useractivity` VALUES ('zhangsan', '七彩四点半', 1);
INSERT INTO `useractivity` VALUES ('liuyan', '七彩四点半', 1);
INSERT INTO `useractivity` VALUES ('liuyan1', '七彩四点半', 1);
INSERT INTO `useractivity` VALUES ('liuyan2', '七彩四点半', 1);
INSERT INTO `useractivity` VALUES ('123456', '123456的生日聚会', 1);
INSERT INTO `useractivity` VALUES ('liuyan', 'dsafas', 2);
INSERT INTO `useractivity` VALUES ('aaa123456', 'high you gei me', 2);
INSERT INTO `useractivity` VALUES ('zhangsan', '给边疆栽上万朵鲜花', 2);

SET FOREIGN_KEY_CHECKS = 1;
